package com.jk.util;

import java.io.File;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.io.FileUtils;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;

import org.springframework.web.multipart.MultipartFile;


public class UpLoad {
//	封装的上传方法
	public static String upload(MultipartFile companyPhoto, HttpServletRequest request){
//		原文件路径
		String oldlj = companyPhoto.getOriginalFilename();
//		获得后缀名
		int index = oldlj.lastIndexOf(".");
		String sub = oldlj.substring(index);   //后缀名
//		重命名  1.当前时间戳   2.uuid
		long cur = System.currentTimeMillis();   //获得串数字，当名字
//		新名字：
		String newname=cur+sub;
//		获取转存路径
		String realPath = request.getSession().getServletContext().getRealPath("/");
//		建一个新文件夹
		File file=new File(realPath+"upload");
		if(!file.exists()){   //如果文件夹不存在
			file.mkdirs();    //建一个
		}
//		转存
		File fi=new File(file+"//"+newname);   //新文件，里面是它的路径
		try {
			companyPhoto.transferTo(fi);
		} catch (IllegalStateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return newname;
	}

//	封装下载方法
	public static ResponseEntity<byte[]> download(String ph,HttpServletRequest request){
//		设置响应信息
		HttpHeaders httpheaders=new HttpHeaders();
//		设置传的文件的类型  set
		httpheaders.setContentDispositionFormData("attachment", ph);
//		获得要下载的文件的绝对路径   还有个文件夹要记的写
		String realPath = request.getSession().getServletContext().getRealPath("/")+"/upload";
//	    将文件转换成二进制数组
		File file=new File(realPath+"/"+ph);
		
		byte[] filearray=null;
		try {
			//转换成了一个二进制的数组
			 filearray = FileUtils.readFileToByteArray(file);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return new ResponseEntity<byte[]>(filearray,httpheaders,HttpStatus.CREATED);
	}
}
